Computer networks often employ one or more network protocols in order to manage the transmission of traffic through the network, such as to avoid loops and to converge in response to changes in network topology. For instance, spanning tree protocols (STPs), such as the Rapid Spanning Tree Protocol (RSTP) or the Multiple Spanning Tree (MST) protocol, may be used for these (and other) purposes. A spanning tree, as will be understood by those skilled in the art, is a logical structure used by forwarding mechanisms of bridges/switches within the network to ensure that all other devices within the network are reachable from a single device within the network (a “root” bridge, e.g., based on a priority level) along a distinct and non-looping path (e.g., to “edge” or “leaf” bridges). RSTP and MST may thus be employed on the network devices (bridges) to establish and maintain the spanning tree, and should each have the ability to quickly converge a network (e.g., a large network) in response to topology changes (e.g., within milliseconds).
Preventing RSTP and MST from quickly converging (or “reconverging”, used interchangeably herein), however, are certain problems inherent within the protocols or on the devices operating the protocols themselves. For instance, as may be appreciated by those skilled in the art, the detection of a link failure may not occur for some time after the actual failure, e.g., based on loss of communicated “hello” messages between devices over the link in question. Also, quick convergence assumes that the STP executes as soon as it receives new information (e.g., a Bridge Protocol Data Unit or “BPDU”, or link failure indication) of a topology change. However, the STP is not always executed immediately in response to receiving such event notifications.
In addition, STP convergence (e.g., particularly RSTP and MST) involves the use of a proposal/agreement mechanism that utilizes synchronization or “sync” operations, where changes are made to port states on each bridge (e.g., between blocking/discarding and unblocking/forwarding) in order to propagate a topology change through BPDUs (converging). These sync operations require the STP to wait for port state changes to be completed for potentially several ports before proceeding, where each port state change itself induces a non-negligible processing delay. Further, where the state change is implemented by a different process on a bridge than the STP, more time may be lost before this process is scheduled, and may require communication between different processes/components on distributed platforms. Accordingly, the spanning tree is able to converge as quickly as the BPDUs reach the leaves of the tree; however, where this propagation is slowed for the reasons above, the convergence is also slowed.